package com.chidt.zpro.entity;

import lombok.Data;
import java.time.LocalDateTime;

/**
 * 用户通知实体类
 */
@Data
public class Notification {
    /**
     * 通知ID（主键）
     */
    private Long id;
    
    /**
     * 接收通知的用户ID（外键关联user.id）
     */
    private Long userId;
    
    /**
     * 通知类型（点赞/关注/提及）
     */
    private NotificationType type;
    
    /**
     * 触发通知的用户ID（外键关联user.id）
     */
    private Long sourceUserId;
    
    /**
     * 关联的推文ID（外键关联tweet.id）
     */
    private Long tweetId;
    
    /**
     * 是否已读（0未读/1已读）
     */
    private Boolean isRead = false;
    
    /**
     * 通知时间
     */
    private LocalDateTime createdAt;
    
    /**
     * 通知类型枚举
     */
    public enum NotificationType {
        LIKE("like"),
        FOLLOW("follow"),
        MENTION("mention");
        
        private final String value;
        
        NotificationType(String value) {
            this.value = value;
        }
        
        public String getValue() {
            return value;
        }
    }
}